#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 确保该脚本是使用Python执行的脚本

import rospy
from std_msgs.msg import String

def callback(data):
    rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)

def listener():
    rospy.init_node('listener', anonymous=True)
    '''
    anonymous=True会告诉rospy要生成一个唯一的节点名称，
    因此允许多个listener.py同时运行
    （ROS要求每一个节点有唯一名称，如果由相同名称，则会中止之前同名的节点）
    '''

    rospy.Subscriber("chatter", String, callback)
    '''
    节点订阅话题chatter，消息类型是std_msgs.msg.String
    一旦接收到新消息，触发回调函数处理这些信息，并把消息作为第一个参数传递到函数里
    '''

    rospy.spin()    # 保持节点一直运行，指导程序关闭

if __name__ == '__main__':
    listener()
